home *** CD-ROM | disk | FTP | other *** search
- ; This file Copyright 1994 Dan Wesnor
- ;
- ; This file may be freely distributed as long as no
- ; information is changed, no charge is made for
- ; the file, and the archive in which the file was
- ; contained is distributed in tact. Any violation
- ; of these conditions requires written authorization
- ; by the copyright holder.
-
- /*
- This is a script for the Magic Camera rendering system.
- Magic Camera (MC) uses ray-tracing for realisting rendering
- of shadows, reflections, and transparency. It is in the
- final phase of completion and should be released shortly.
- Plans are for release as shareware with a nominal charge
- for a full working version.
-
- See comments for a description of features.
- Comments are either C-style (like this one), or a semi-colon
- followed by text ; like this.
- */
-
- /*
- Primitive object include triangles and parallelograms,
- both of which may be phong smoothed, spheres, rings (or disks),
- and planes.
-
- Compound objects, which allow complex shapes to be built,
- include extrusions, spins, skin-over-frame, filled complex
- 2-d polygons (with holes), heightfields, boxes, and
- polygon spheres.
-
- Available patterns are check, wood, marble, brick,
- several types of bitmap wraps, blotch, and clouds.
-
- Textures include waves and several type of bumpmaps.
-
- Lamps include point-source, directional, directional
- spotlights (w/ beam width and beam falloff sharpness
- controls), or spherical extended.
-
- Variables, which may be used in complex expressions, include
- real numbers, integers, 3d-vectors, and arrays of reals, 2-d vectors,
- and 3-d vectors. Variables and arrays may be used to facilitate
- animation.
- */
-
- /* exports bishop.obj, which is 16.5 units high by 4 units radius */
-
- color __bishopsurf { diff <1, 1, 1> }
-
- object bishop.obj /* a chess piece */
-
- /*
- a slice is a two-dimensional array which is used
- to describe 2D lines or polygons. a slice can then
- be manipulated in variaous ways to form complex
- polygon mesh objects. it may be spun, extruded, or
- several slices may be used as a framework on which a
- skin is applied.
- */
-
- slice __bishop.slice = {
- <0, 0>,
- <4, 0>,
- <3.3, .7>,
- <2.5, 1>,
- <2, 1.5>,
- <2.5, 2>,
- <3, 2>,
- <3.5, 2.5>,
- <3, 3>,
- <1.5, 3.5>,
- <1, 5>,
- <1, 7>,
- <1.5, 8>,
- <2.5, 8>,
- <3, 8.5>,
- <2.5, 9>,
- <1.5, 9>,
- <2, 9.5>,
- <1.5, 10>,
- <.3, 10>,
- <1, 11>,
- <1.5, 12.5>,
- <1, 14>,
- <0, 15.5>,
- <.5, 16>,
- <0, 16.5>
- }
-
- /*
- spins need not go through all 360 degrees.
- both start and end angles may be specified.
- a 'rise' may also be set, so that the slice is
- moved upwards as it is spun, creating a spiral
- effect. spins may be greate than 360 degrees.
-
- as of now, all spins are around the Y axis.
- */
-
- spin {
- loc <0, 0, 0> ; location to spin around
- segs 8 ; segments of the spin, i.e.,
- ; how many divisions in the spun
- ; object. this indicates that
- ; a division will occur every
- ; 45 degrees (360/8=45)
- patt __bishopsurf ; apply the surface
- slice __bishop.slice ; define the slice to spin
- smooth ; apply smoothing routines
- }
-
- endobject /* bishop.obj */
-
- lockobj bishop.obj ; lock the object into pattern space
- ; so that it does not 'slide off' the
- ; object as it is moved
-
- /* these variable tell the world outside this file how big
- the object is.
- */
- real bishop_radius = 4
- real bishop_height = 16.5
-